package com.hospital.hospitalserver.mapper;

import com.hospital.hospitalserver.entity.DoctorDetail;
import com.hospital.hospitalserver.entity.DoctorScheduleInstanceDTO;
import com.hospital.hospitalserver.entity.Vo.Doctor;
import com.hospital.hospitalserver.entity.query.DoctorScheduleQuery;
import com.hospital.hospitalserver.util.Pager;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 医生管理相关操作方法
 * */
@Mapper
public interface DoctorMapper {
    /**
     * 新增医生
     * */
    Integer addDoctor(DoctorDetail doctor);

    /**
     * 编辑医生信息
     * */
    Integer editDoctor(DoctorDetail doctor);

    /**
     * 根据医生id查询医生信息
     * */
    Doctor findByDoctorId(@Param("doctor_id") Integer id);

    /**
     * 分页功能
     * 根据搜索条件查询医生数据总数
     * */
    Integer getDoctorCountBySearch(Pager pager);

    /**
     * 分页功能
     * 根据搜索条件查询医生分页数据
     * */
    List<DoctorDetail> getDoctorMapperDataBySearch(Pager pager);

    /**
     * 获取医生的列表数据
     * 用于查询检索
     * */
    public List<Doctor> getDoctorList();

    /**
     * 医生工作台
     * 获取当前医生的月视图-周视图-日视图的排班数据
     * */
    List<DoctorScheduleInstanceDTO> queryDoctorScheduleInstanceData(DoctorScheduleQuery query);
}
